package com.quanyan.user.service;

import com.quanyan.user.model.vo.response.RespUserTask;
import com.quanyan.user.mq.UserTaskMsg;

import java.util.List;

/**
 * Created by jian.zhou on 2016/6/30.
 * 任务
 */
public interface UserTaskService {




    /**
     * 初始化用户任务
     * @param uid
     */
    void initUserTask(Integer uid);


    /**
     * 定时每天初始化日常任务
     */
    void initDayUserTask();


    /**
     * 做任务
     * @param uid
     * @param userTaskId
     * @param taskId
     */
    void whileTask(Integer uid, Integer userTaskId, Integer taskId);


    /**
     * 做任务
     * @param uid
     * @param taskId
     */
    void whileTask(Integer uid, Integer taskId);

    void notifyWhenAddEgg(Integer uid, Integer taskId, Long addEgg);

    /**
     * 缓存系统任务
     */
    void initSystemTask();



    /**
     * 获取新手任务
     * @param uid
     * @return
     */
    List<RespUserTask> queryUserNewHandTask(Integer uid);


    /**
     * 获取用户日常任务
     */
    List<RespUserTask> queryUserDayTask(Integer uid);


    /**
     * 是否完成所有新手任务 1 完成 0 未完成
     * @param uid
     * @return
     */
    int isNewHandComplete(Integer uid);


    /**
     * 判断某个新手任务是否完成（新手任务） true 完成 false未完成
     * @param uid
     * @param taskId
     * @return
     */
    Boolean isNewTaskComplete(Integer uid,Integer taskId);

    /**
     * 判断某个日常任务是否完成（新手任务） true 完成 false未完成
     * @param uid
     * @param taskId
     * @return
     */
    Boolean isDayTaskComplete(Integer uid,Integer taskId);

    /**
     * 批处理用户做活动任务
     * @param userTaskMsgList
     */
    void doActivityTask(List<UserTaskMsg> userTaskMsgList);

    /**
     * 用户今天是否掏鸟蛋
     * @param uid
     * @return  0; //未掏 1 已掏
     */
    byte isTaoEgg(int uid);

    /**
     * 设置任务
     * type 1 删除 0 整除
     *
     */
    void setUpTask (Integer taskId,Integer type);
    }
